Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 4a1a5a7038e2d41c80e2506d2de3dc63b1fa4f6f


Parents : d87a58a
Author : Mark Qvist <mark@unsigned.io>
Date : 2023-10-26T13:43:28+02:00

Added option to disable propagation on direct delivery failure. Updated keyboard shortcuts.

Changes

3 files changed, 48 insertions(+), 4 deletions(-)

M sbapp/main.py +27 -2

Diff

diff --git a/sbapp/main.py b/sbapp/main.py
index 3ee5e3ed..358039a1 100644
--- a/sbapp/main.py
+++ b/sbapp/main.py
@@ -750,6 +750,7 @@ class SidebandApp(MDApp):
def keydown_event(self, instance, keyboard, keycode, text, modifiers):
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "q"):
self.quit_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "w"):
if self.root.ids.screen_manager.current == "conversations_screen":
self.quit_action(self)
@@ -757,19 +758,36 @@ class SidebandApp(MDApp):
self.object_details_screen.close_action()
else:
self.open_conversations(direction="right")
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "s" or text == "d"):
if self.root.ids.screen_manager.current == "messages_screen":
self.message_send_action()
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "l"):
self.announces_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "m"):
- self.map_action(self)
+ if self.root.ids.screen_manager.current == "messages_screen":
+ context_dest = self.messages_view.ids.messages_scrollview.active_conversation
+ self.map_show_peer_location(context_dest)
+ else:
+ self.map_action(self)
+
+ if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "p"):
+ self.settings_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "t"):
- self.telemetry_action(self)
+ if self.root.ids.screen_manager.current == "messages_screen":
+ self.object_details_action(self.messages_view, from_conv=True)
+ else:
+ self.telemetry_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "r"):
self.conversations_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "g"):
self.guide_action(self)
+
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and (text == "n"):
if self.root.ids.screen_manager.current == "conversations_screen":
if not hasattr(self, "dialog_open") or not self.dialog_open:
@@ -1386,6 +1404,10 @@ class SidebandApp(MDApp):
self.sideband.config["propagation_by_default"] = self.settings_screen.ids.settings_lxmf_delivery_by_default.active
self.sideband.save_configuration()
+ def save_lxmf_try_propagation_on_fail(sender=None, event=None):
+ self.sideband.config["lxmf_try_propagation_on_fail"] = self.settings_screen.ids.settings_lxmf_try_propagation_on_fail.active
+ self.sideband.save_configuration()
+
def save_lxmf_ignore_unknown(sender=None, event=None):
self.sideband.config["lxmf_ignore_unknown"] = self.settings_screen.ids.settings_lxmf_ignore_unknown.active
self.sideband.save_configuration()
@@ -1473,6 +1495,9 @@ class SidebandApp(MDApp):
self.settings_screen.ids.settings_lxmf_delivery_by_default.active = self.sideband.config["propagation_by_default"]
self.settings_screen.ids.settings_lxmf_delivery_by_default.bind(active=save_lxmf_delivery_by_default)
+ self.settings_screen.ids.settings_lxmf_try_propagation_on_fail.active = self.sideband.config["lxmf_try_propagation_on_fail"]
+ self.settings_screen.ids.settings_lxmf_try_propagation_on_fail.bind(active=save_lxmf_try_propagation_on_fail)
+
self.settings_screen.ids.settings_lxmf_ignore_unknown.active = self.sideband.config["lxmf_ignore_unknown"]
self.settings_screen.ids.settings_lxmf_ignore_unknown.bind(active=save_lxmf_ignore_unknown)

diff --git a/sbapp/sideband/core.py b/sbapp/sideband/core.py
index 685d2cae..b8b3a2bd 100644
--- a/sbapp/sideband/core.py
+++ b/sbapp/sideband/core.py
@@ -368,6 +368,8 @@ class SidebandCore():
self.config["lxmf_ignore_unknown"] = False
if not "lxmf_sync_interval" in self.config:
self.config["lxmf_sync_interval"] = 43200
+ if not "lxmf_try_propagation_on_fail" in self.config:
+ self.config["lxmf_try_propagation_on_fail"] = True
if not "notifications_on" in self.config:
self.config["notifications_on"] = True
if not "print_command" in self.config:
@@ -902,7 +904,7 @@ class SidebandCore():
if debug:
RNS.loglevel = 7
else:
- RNS.loglevel = 2
+ RNS.loglevel = 2
return True
else:
try:
@@ -2681,7 +2683,8 @@ class SidebandCore():
lxm.register_failed_callback(self.message_notification)
if self.message_router.get_outbound_propagation_node() != None:
- lxm.try_propagation_on_fail = True
+ if self.config["lxmf_try_propagation_on_fail"]:
+ lxm.try_propagation_on_fail = True
self.message_router.handle_outbound(lxm)
self.lxm_ingest(lxm, originator=True)

diff --git a/sbapp/ui/layouts.py b/sbapp/ui/layouts.py
index 7abcfcf7..f854ee57 100644
--- a/sbapp/ui/layouts.py
+++ b/sbapp/ui/layouts.py
@@ -1726,6 +1726,22 @@ MDScreen:
pos_hint: {"center_y": 0.3}
active: False
+ MDBoxLayout:
+ orientation: "horizontal"
+ size_hint_y: None
+ padding: [0,0,dp(24),dp(0)]
+ height: dp(48)
+
+ MDLabel:
+ text: "Try Propagation Node on direct delivery failure"
+ font_style: "H6"
+
+ MDSwitch:
+ id: settings_lxmf_try_propagation_on_fail
+ pos_hint: {"center_y": 0.3}
+ disabled: False
+ active: False
+
MDBoxLayout:
orientation: "horizontal"
size_hint_y: None


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────